package sv.gob.mh.dgii.model;

// Generated Dec 12, 2007 3:08:52 PM by Hibernate Tools 3.2.0.CR1

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

/**
 * TbTecnico generated by hbm2java
 */
@Entity
@Table(name = "TB_TECNICO", schema = "CATALOGOS")
@SequenceGenerator(name="SEQ_TB_TECNICO" , sequenceName="SEQ_TB_TECNICO")
public class TbTecnico implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -9138185073980050068L;
	private Long itecnico;
	private RcRuc rcRuc;
	private TbTecnico tbTecnico;
	private String cusuario;
	private Date fhingreso;
	private Date fhmodificacion;
	private Integer bstatus;
	private Date fhfinalizacion;
	private String cacceso;
	private String crol;
	private String caplicacion;
	private String mcategoria;
	private String cunidad;
	private String cunidadRecep;
	private String ssello;
	private String semail;
	private String cusuariotec;
	private String tipoInactivacion;
	private String sobservacion;
	private boolean checked = false;
	private Set<TbTecnico> tbTecnicos = new HashSet<TbTecnico>(0);
	private Set<CcSolGrupo> ccSolGrupos = new HashSet<CcSolGrupo>(0);

	public TbTecnico() {
	}
	
	public TbTecnico(Long itecnico) {
		this.itecnico = itecnico;
	}

	public TbTecnico(Long itecnico, RcRuc rcRuc, String cusuario) {
		this.itecnico = itecnico;
		this.rcRuc = rcRuc;
		this.cusuario = cusuario;
	}

	public TbTecnico(Long itecnico, RcRuc rcRuc, TbTecnico tbTecnico,
			String cusuario, Date fhingreso, Date fhmodificacion,
			Integer bstatus, Date fhfinalizacion, String cacceso, String crol,
			String caplicacion, String ssello, String semail, String cusuariotec, Set<TbTecnico> tbTecnicos,
			Set<CcSolGrupo> ccSolGrupos) {
		this.itecnico = itecnico;
		this.rcRuc = rcRuc;
		this.tbTecnico = tbTecnico;
		this.cusuario = cusuario;
		this.fhingreso = fhingreso;
		this.fhmodificacion = fhmodificacion;
		this.bstatus = bstatus;
		this.fhfinalizacion = fhfinalizacion;
		this.cacceso = cacceso;
		this.crol = crol;
		this.caplicacion = caplicacion;
		this.ssello = ssello;
		this.semail = semail;
		this.cusuariotec = cusuariotec;
		this.tbTecnicos = tbTecnicos;
		this.ccSolGrupos = ccSolGrupos;
	}

	@Id
	@Column(name = "I_TECNICO", unique = true, nullable = false, precision = 10, scale = 0)
	@GeneratedValue(strategy=GenerationType.AUTO, generator="SEQ_TB_TECNICO")
	public Long getItecnico() {
		return this.itecnico;
	}

	public void setItecnico(Long itecnico) {
		this.itecnico = itecnico;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "NIT", nullable = false)
	public RcRuc getRcRuc() {
		return this.rcRuc;
	}

	public void setRcRuc(RcRuc rcRuc) {
		this.rcRuc = rcRuc;
	}

	@ManyToOne(fetch = FetchType.LAZY )
	@JoinColumn(name = "I_TECNICO_SUPERIOR")
	
	public TbTecnico getTbTecnico() {
		return this.tbTecnico;
	}

	public void setTbTecnico(TbTecnico tbTecnico) {
		this.tbTecnico = tbTecnico;
	}

	@Column(name = "C_USUARIO", nullable = false,  length = 30)
	public String getCusuario() {
		return this.cusuario;
	}

	public void setCusuario(String cusuario) {
		this.cusuario = cusuario;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_INGRESO", length = 7)
	public Date getFhingreso() {
		return this.fhingreso;
	}

	public void setFhingreso(Date fhingreso) {
		this.fhingreso = fhingreso;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_MODIFICACION", length = 7)
	public Date getFhmodificacion() {
		return this.fhmodificacion;
	}

	public void setFhmodificacion(Date fhmodificacion) {
		this.fhmodificacion = fhmodificacion;
	}

	@Column(name = "B_STATUS", precision = 1, scale = 0)
	public Integer getBstatus() {
		return this.bstatus;
	}

	public void setBstatus(Integer bstatus) {
		this.bstatus = bstatus;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "FH_FINALIZACION", length = 7)
	public Date getFhfinalizacion() {
		return this.fhfinalizacion;
	}

	public void setFhfinalizacion(Date fhfinalizacion) {
		this.fhfinalizacion = fhfinalizacion;
	}

	@Column(name = "C_ACCESO", length = 50)
	public String getCacceso() {
		return this.cacceso;
	}

	public void setCacceso(String cacceso) {
		this.cacceso = cacceso;
	}

	@Column(name = "C_ROL", length = 50)
	public String getCrol() {
		return this.crol;
	}

	public void setCrol(String crol) {
		this.crol = crol;
	}

	@Column(name = "C_APLICACION", length = 50)
	public String getCaplicacion() {
		return this.caplicacion;
	}

	public void setCaplicacion(String caplicacion) {
		this.caplicacion = caplicacion;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "tbTecnico")
	public Set<TbTecnico> getTbTecnicos() {
		return this.tbTecnicos;
	}

	public void setTbTecnicos(Set<TbTecnico> tbTecnicos) {
		this.tbTecnicos = tbTecnicos;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "tbTecnico")
	public Set<CcSolGrupo> getCcSolGrupos() {
		return this.ccSolGrupos;
	}

	public void setCcSolGrupos(Set<CcSolGrupo> ccSolGrupos) {
		this.ccSolGrupos = ccSolGrupos;
	}
	
	@Column(name = "M_CATEGORIA", length = 1)
	public String getMcategoria() {
		return mcategoria;
	}
	public void setMcategoria(String mcategoria) {
		this.mcategoria = mcategoria;
	}
	
	@Column(name = "C_UNIDAD", length = 5)
	public String getCunidad() {
		return cunidad;
	}
	public void setCunidad(String cunidad) {
		this.cunidad = cunidad;
	}
	
	@Column(name = "S_SELLO", length = 5)
	public String getSsello() {
		return ssello;
	}
	public void setSsello(String ssello) {
		this.ssello = ssello;
	}
	
	@Column(name = "C_UNIDAD_RECEP", length = 5)
	public String getCunidadRecep() {
		return cunidadRecep;
	}


	public void setCunidadRecep(String cunidadRecep) {
		this.cunidadRecep = cunidadRecep;
	}


	@Column(name = "S_EMAIL", length = 100)
	public String getSemail() {
		return semail;
	}
	public void setSemail(String semail) {
		this.semail = semail;
	}	

	@Column(name = "C_USUARIO_TEC", length = 30)
	public String getCusuariotec() {
		return cusuariotec;
	}
	public void setCusuariotec(String cusuariotec) {
		this.cusuariotec = cusuariotec;
	}


	/**
	 * @return the tipoInactivacion
	 */
	@Column(name = "C_TIPO_INACTIVACION", length = 3)
	public String getTipoInactivacion() {
		return tipoInactivacion;
	}


	/**
	 * @param tipoInactivacion the tipoInactivacion to set
	 */
	public void setTipoInactivacion(String tipoInactivacion) {
		this.tipoInactivacion = tipoInactivacion;
	}


	/**
	 * @return the sobservacion
	 */
	@Column(name = "S_OBSERVACION", length = 255)
	public String getSobservacion() {
		return sobservacion;
	}


	/**
	 * @param sobservacion the sobservacion to set
	 */
	public void setSobservacion(String sobservacion) {
		this.sobservacion = sobservacion;
	}	
	

	@Transient
	public boolean isChecked() {
		return checked;
	}


	public void setChecked(boolean checked) {
		this.checked = checked;
	}
	
	public void setNit(String nit) {
		rcRuc.setNit(nit);
	}

}
